part of "../shelf.dart";

extension ReadDataOnRequest on Request {
  /// 获取请求的body信息，并解码为json格式反应
  /// 如果产生任何错误，则抛出Bug以提供捕捉
  @Deprecated("应该使用getBody中间件代替此函数")
  Future<Json> getRawBody() async {
    // 先将请求的body解读为String格式
    String content = await readAsString();
    // 先检查是否为空
    if (content.isEmpty) throw Bug("请求体中没有任何信息，而服务器希望收到json格式的信息");

    // 再尝试是否解析失败
    late dynamic json = jsonDecode(content);

    // 将String解码为Raw格式并返回
    assert(json is Json);
    return json;
  }
}
